/*
 * Bond.cpp
 *
 *  Created on: Mar 26, 2012
 *      Author: s146913
 */

#include "Bond.h"

Bond* Bond::bondInstance = 0;

Bond* Bond::getInstance() {

	if(bondInstance == 0) {
		bondInstance = new Bond();
	}

	return bondInstance;
}

Bond::Bond() {
	vrijkaartjesVrijgegeven = new vector<int>();
	vrijkaartjesVrijgegeven->push_back(0);
	dierentuinen = new vector<Dierentuin*>();
}

Bond::~Bond() {
	vrijkaartjesVrijgegeven->erase(vrijkaartjesVrijgegeven->begin(), vrijkaartjesVrijgegeven->end());
	delete vrijkaartjesVrijgegeven;

	delete dierentuinen;
}

bool Bond::controleerKaartje(int vrijkaartje) {
	for(unsigned int i = 0; i < vrijkaartjesVrijgegeven->size(); i++) {
		if(vrijkaartjesVrijgegeven->at(i) == vrijkaartje) {
			return true;
		}
	}
	return false;
}

void Bond::geefVrijkaartjesAanDierentuinen() {
	for(vector<Dierentuin*>::iterator it = dierentuinen->begin(); it != dierentuinen->end(); ++it) {
		int laatste = vrijkaartjesVrijgegeven->back();
		for(int i = laatste +1; i < laatste +11; i++) {
			vrijkaartjesVrijgegeven->push_back(i);
			(*it)->addVrijkaart(i);
		}
		cout << endl;
	}
}

void Bond::meldDierentuinAan(Dierentuin* dt) {
	dierentuinen->push_back(dt);
}
